package com.naiterui.ehp.bs.consult.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.naiterui.ehp.bp.bo.patient.PatientInquirerBO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author gaoliangliang
 * @date 2022-07-05 10:31
 **/
@Builder
@Data
@ApiModel("医生会诊记录")
public class GroupConsultListVO {

    @ApiModelProperty(value = "视频问诊id")
    private Long videoConsultId;

    @ApiModelProperty(value = "房间号")
    private Integer roomId;

    @ApiModelProperty(value = "病例id")
    private String caseId;

    @ApiModelProperty(value = "病情id")
    private String diseaseId;

    @ApiModelProperty(value = "患者Id")
    private Long patientId;

    @ApiModelProperty(value = "患者姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String patientName;

    @ApiModelProperty(value = "患者头像")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String patientPhoto;

    @ApiModelProperty(value = "就诊人信息")
    private PatientInquirerBO inquirerInfo;

    @ApiModelProperty(value = "就诊人id")
    private Long inquirerId;

    @ApiModelProperty(value = "就诊人姓名")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String inquirerName;

    @ApiModelProperty(value = "就诊人年龄")
    private String inquirerAgeStr;

    @ApiModelProperty(value = "性别")
    private Integer inquirerGender;

    @ApiModelProperty(value = "问诊状态1:待接诊;2:进行中;3:中断;4:已取消;5:已完成;")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer status;

    @ApiModelProperty(value = "会诊申请日期时间：2022-07-05")
    private String groupConsultDate;

    @ApiModelProperty(value = "会诊申请开始时间：11:00")
    private String groupConsultTimeStart;

    @ApiModelProperty(value = "会诊申请结束时间：13:00")
    private String groupConsultTimeEnd;

    @ApiModelProperty(value = "会诊状态，0：未申请会诊，1：会诊待开始，2：受邀方总结，3：发起方总结")
    private Integer groupConsultStatus;

    @ApiModelProperty(value = "会诊原由")
    private String groupConsultReason;

    @ApiModelProperty(value = "受邀方 会诊意见")
    private String targetOpinion;

    @ApiModelProperty(value = "受邀方 会诊意见填写时间")
    private Date targetOpinionAt;

    @ApiModelProperty(value = "发起方 会诊意见")
    private String sourceOpinion;

    @ApiModelProperty(value = "发起方 会诊意见填写时间")
    private Date sourceOpinionAt;

    @ApiModelProperty(value = "受邀方医生")
    private String targetDoctorName;

    @ApiModelProperty(value = "受邀方医生ID")
    private Long targetDoctorId;

    @ApiModelProperty(value = "受邀方医生ID")
    private String targetDoctorPhone;

    @ApiModelProperty(value = "发起方医生")
    private String doctorName;

    @ApiModelProperty(value = "发起方医生ID")
    private Long doctorId;

    @ApiModelProperty(value = "科室名称")
    private String departmentName;

    @ApiModelProperty(value = "受邀方医院名称")
    private String targetHospitalName;

    @ApiModelProperty(value = "发起方医院名称")
    private String sourceHospitalName;

    @ApiModelProperty(value = "线下就诊记录地址")
    private String offlineMedicalRecordUrl;

    @ApiModelProperty(value = "线上就诊记录地址")
    private String onlineMedicalRecordUrl;

    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    @ApiModelProperty(value = "更新时间")
    private Date changedAt;
    
    @ApiModelProperty(value = "会诊资料PDF")
    private String pdfPath;

    @ApiModelProperty(value = "诊断集合")
    private List<String> diagnoseData;
}
